import {useState} from 'react';
import {View, Button, Alert} from 'react-native';
// 修改状态是异步的
/* ### 原理说明：
1. 异步批量更新 ：React会将多个 setNum 调用合并为单个更新操作
2. 闭包现象 ：事件处理函数中的 num 值是点击事件发生时的快照值
3. 更新流程 ：
   - 点击触发事件 → 创建包含当前num值(0)的闭包
   - 执行 setNum(10) → 将更新加入队列
   - 立即执行 Alert.alert → 读取闭包中的num值(0)
   - React稍后处理队列 → 更新num为10 → 触发重新渲染 */
export default function App() {
  const [num, setNum] = useState(0);
  return (
    <View>
      <Button
        title={num.toString()}
        onPress={() => {
          setNum(10);
          Alert.alert('点击', num.toString()); // 输出0
        }}
      />
    </View>
  );
}
